﻿// <copyright file="WorldGenerator.cs" company="TenneySoftware">
// Copyright (c) 2009 All Right Reserved
// </copyright>
// <author>Robert Tenney</author>
// <email>rob10e@yahoo.com</email>
// <date>April 2009</date>
// <summary>World level generator.</summary>

// License:

// Product: World.csproj
// Author: Robert N. Tenney
// Copyright: 9/14/2009

// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation version 2
// of the License.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

// This license covers all source code, binaries, and other materials related to this project
// unless specifically stated otherwise.

using System;
using System.Drawing;
using System.IO;
using System.Reflection;
using System.Windows.Forms;

using TenneySoftware.Engine;
using TenneySoftware.Engine.Debug;

namespace TenneySoftware.LevelGenerator.WorldGenerator {
    /// <summary>
    /// Random world level generator.
    /// </summary>
    public partial class World : ILevelGenerator, IDebugConsole {
        /// <summary>
        /// Random number generator seed.
        /// </summary>
        private int seed;
        
        /// <summary>
        /// Name of the settings used.
        /// </summary>
        private string settingsName;
        
        /// <summary>
        /// Random number generator.
        /// </summary>
        private Random rand;
        
        /// <summary>
        /// TileData level array.
        /// </summary>
        private Level level;
        
        /// <summary>
        /// Initializes a new instance of the World class.
        /// </summary>
        public World() : this(0) {
        }

        /// <summary>
        /// Initializes a new instance of the World class.
        /// </summary>
        /// <param name="size">Size to set the level to.</param>
        public World(Size size) : this(0, size) {
        }

        /// <summary>
        /// Initializes a new instance of the World class.
        /// </summary>
        /// <param name="predefined">Integer code of the predefine.</param>
        public World(int predefined) : this(predefined, new Size(64, 64)) {
        }

        /// <summary>
        /// Initializes a new instance of the World class.
        /// </summary>
        /// <param name="predefined">Integer code of the predefine.</param>
        /// <param name="size">Size to make level.</param>
        public World(int predefined, Size size) {
            ////this.UsePredefinedSettings(predefined);
            this.SetSize(size);
        }
    }
}
